package com.personal.gateway.flinkAllCommand.configurationOption.configurationType;

import com.personal.gateway.flinkAllCommand.configurationOption.ConfigurationOption;

import javax.annotation.Nonnull;

/**
 * @author BigHead
 * @date 2022/1/10 16:31
 * @description ConfigurationTypeEnumInterface
 */
public interface ConfigurationTypeEnumInterface {

    /**
     * web展示信息
     *
     * @return 字符串展示信息
     */
    String getShowValue();

    /**
     * 获取选择参数值
     *
     * @return web筛选信息
     */
    String getSelectValue();

    /**
     * 校验枚举值
     * @param values 字符串值
     * @return 是否存在
     */
    boolean checkExist(@Nonnull String... values);

    /**
     * 校验枚举值
     * @param configurationOption 前提条件
     * @param values 字符串值
     * @return 是否存在
     */
    boolean checkExist(ConfigurationOption<?, ?> configurationOption, @Nonnull String... values);

    /**
     * 前提条件获取样例数据
     * @param configurationOption 前提数据条件
     * @return 是否存在
     */
    boolean checkExampleValue(ConfigurationOption<?, ?> configurationOption);

}
